double sqr(double x)
{
	double a;
	__asm__ volatile (
		"fmv.d	fs0, %1\n\t"
		"fmul.d	fs0, fs0, fs0\n\t"
		"fmv.d	%0, fs0"
		: "=fr" (a)
		: "fr" (x)
		: "fs0"
	);
	return a;
}